<?php
//dirname(dirname(dirname(__FILE__)))
//require('c:/wamp/www/setyd/fpdf/fpdf.php');
define( "DIRRAIZ", dirname(dirname(__FILE__)) );

require(DIRRAIZ.'/fpdf/fpdf.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_bar.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_bar.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_pie.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_pie.php');

//require_once ('c:/wamp/www/setyd/jpgraph/src/jpgraph_pie3d.php');
require_once(DIRRAIZ.'/jpgraph/src/jpgraph_pie3d.php');


		class PDF extends  FPDF
		{
			// Page header
			function Header()
			{
			    // Logo
//			    $this->Image('c:/wamp/www/setyd/web/img/logUtn.jpg',150,1,45,30);
			    $this->Image(DIRRAIZ.'/web/img/logUtn.jpg',150,1,45,30);
				
			    // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the right
			    $this->Cell(40);
			    // Title
			    $this->Cell(80,10,'Escavelo Software Delivery',1,0,'C');
			    // Line break
			    $this->Ln(20);
			}
			
			// Page footer
			function Footer()
			{
			    // Position at 1.5 cm from bottom
			    $this->SetY(-15);
			    // Arial italic 8
			    $this->SetFont('Arial','I',8);
			    // Page number
			    $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
			}
			
			// Colored table
			function FancyTable($header, $data ,$w,$title)
			{
			   
			   	 // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the( right
			    $this->Cell(10)	;
			    // Title
			    $this->Cell(80,10,'Informe de Tickets por Tecnico');
			    // Line break
			    $this->Ln(20);
			    	
					
					
			    // Colors, line width and bold font
			    $this->SetFillColor(50,0,0);
			    $this->SetTextColor(255);
			    $this->SetDrawColor(128,0,0);
			    $this->SetLineWidth(.3);
			    $this->SetFont('','B');
				
			    // Header
			    for($i=0;$i<count($header);$i++)
			        $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
			    $this->Ln();
				
			    // Color and font restoration
			    $this->SetFillColor(224,235,255);
			    $this->SetTextColor(0);
			    $this->SetFont('');
			    // Data
			    $fill = false;
			    foreach($data as $row)
			    {
			        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
			        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
			        $this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
					$this->Cell($w[3],6,$row[3],'LR',0,'L',$fill);
			        $this->Ln();
			        $fill = !$fill;
			    }
			    // Closing line
			    $this->Cell(array_sum($w),0,'','T');
			}
	
				// Colored table
			function FancyTableTicket($header, $data ,$w,$title)
			{
			   
			   	 // Arial bold 15
			    $this->SetFont('Arial','B',15);
			    // Move to the( right
			    $this->Cell(10)	;
			    // Title
			    $this->Cell(80,10,$title);
			    // Line break
			    $this->Ln(20);
			    	
					
					
			    // Colors, line width and bold font
			    $this->SetFillColor(50,0,0);
			    $this->SetTextColor(255);
			    $this->SetDrawColor(128,0,0);
			    $this->SetLineWidth(.3);
			    $this->SetFont('','B');
				
			    // Header
			    for($i=0;$i<count($header);$i++)
			        $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
			    $this->Ln();
				
			    // Color and font restoration
			    $this->SetFillColor(224,235,255);
			    $this->SetTextColor(0);
			    $this->SetFont('');
			    // Data
			    $fill = false;
			    foreach($data as $row)
			    {
			        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
			        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
			        $this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
			        $this->Ln();
			        $fill = !$fill;
			    }
			    // Closing line
			    $this->Cell(array_sum($w),0,'','T');
			}
	
	
				
							
			// Load data
			function LoadData($file)
			{
			    // Read file lines
			    $lines = file($file);
			    $data = array();
			    foreach($lines as $line)
			        $data[] = explode(';',trim($line));
			    return $data;
			}
		}



	class Reporte extends Model {
	
		public static function CrearReporteTicket($idEmpresa,$fechaIni,$fechafin,$idClientes,$idSumarizar,$idgrafico){
				// Instanciation of inherited class
				$pdf = new PDF();
		
		
				if ($idSumarizar == 0 ) 
				              $texto="";
				if ($idSumarizar == 1 ) 
				              $texto="Dia";
				if ($idSumarizar == 2 ) 
				              $texto="Semana";
				if ($idSumarizar == 3 ) 
				              $texto="Mes";
				if ($idSumarizar == 4 ) 
				              $texto="Año";
		
		
				$header = array($texto, 'Finalizadas','Totales');
				$pdf->AddPage();

				$TareasSolucionados = array();
				$TareasIngresados = array();
	       
				$ar=fopen("Ticket.txt","w") or
					    die("Problemas en la creacion");
				$i=0;
			    $TotalTicket = 0;
				
				//Sin sumarizar
				if ($idSumarizar == 0) {
					
					$ejex [$i]= $fechaIni."-hasta-".$fechafin;
						
					$CantTareasSolucionados= tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,3,$idClientes);
					$CantTareasIngresados = tarea::getCantRowsxEstado($idEmpresa, $fechaIni, $fechafin,0,$idClientes);	
					
					$TareasSolucionados [$i]  = $CantTareasSolucionados;
					$TareasIngresados [$i]  = $CantTareasIngresados;	
					
					fputs($ar, "Cantidad de ticket" . ";" . $CantTareasSolucionados . ";" .  $CantTareasIngresados );
					fputs($ar,"\n");
				}
			
				//diario
				if ($idSumarizar == 1) {
				
			    	for ($j = 1; $j <= 5; $j++) {
			    		
						$CantTareasSolucionados= tarea::getCantRowsxEstadoSumarizadoxDia($idEmpresa, $fechaIni, $fechafin,3,$idClientes,$j);
						$CantTareasIngresados = tarea::getCantRowsxEstadoSumarizadoxDia($idEmpresa, $fechaIni, $fechafin,0,$idClientes,$j);	
					
						if ($j  == 1 ) 
				              $dia="Lunes";
							  $ejex[$i] = $dia ;
						if ($j  == 2 ) 
						      $dia="Martes";
							  $ejex[$i] = $dia ;
						if ($j  == 3 ) 
						      $dia="Miercoles";
							  $ejex[$i] = $dia ;	
						if ($j  == 4 ) 
						      $dia="Jueves";
						      $ejex[$i] = $dia ;
						if ($j  == 5 ) 
						      $dia="Viernes";
						      $ejex[$i] = $dia ;						

						$TareasSolucionados [$i]  = $CantTareasSolucionados;
						$TareasIngresados [$i]  = $CantTareasIngresados;				
						$i++;
						$TotalTicket = $TotalTicket + $CantTareasIngresados;
					
						fputs($ar, $dia . ";" . $CantTareasSolucionados . ";" .  $CantTareasIngresados );
						fputs($ar,"\n");
					}	
				}
		
				//Semanal
				if ($idSumarizar == 2) {
			    	for ($j = 1; $j <= 4; $j++) {
						$CantTareasSolucionados= tarea::getCantRowsxEstadoSumarizadoxSemana($idEmpresa, $fechaIni, $fechafin,3,$idClientes,$j);
						$CantTareasIngresados = tarea::getCantRowsxEstadoSumarizadoxSemana($idEmpresa, $fechaIni, $fechafin,0,$idClientes,$j);	
					
						if ($j == 1 ) 
				              $semana="01 al 07";
				              $ejex[$i] = $semana ;
						if ($j == 2 ) 
						      $semana="08 al 15";
							  $ejex[$i] = $semana ;
						if ($j == 3 ) 
						      $semana="16 al 23";
							  $ejex[$i] = $semana ;
						if ($j == 4 ) 
						      $semana="24 al 31";
							  $ejex[$i] = $semana ;

						$TareasSolucionados [$i]  = $CantTareasSolucionados;
						$TareasIngresados [$i]  = $CantTareasIngresados;				
						$i++;
						$TotalTicket = $TotalTicket + $CantTareasIngresados;	

					
						fputs($ar, $semana . ";" . $CantTareasSolucionados . ";" .  $CantTareasIngresados );
						fputs($ar,"\n");
					}	
				}


				//mensual
				if ($idSumarizar == 3) {
			    	list($dia1,$mes1,$año1)=explode("/",$fechaIni);	
					list($dia2,$mes2,$año2)=explode("/",$fechafin);
						
			    	for ($j = $mes1; $j <= $mes2; $j++) {
						$CantTareasSolucionados= tarea::getCantRowsxEstadoSumarizadoxMes($idEmpresa, $fechaIni, $fechafin,3,$idClientes,$j);
						$CantTareasIngresados = tarea::getCantRowsxEstadoSumarizadoxMes($idEmpresa, $fechaIni, $fechafin,0,$idClientes,$j);	
					
						
						if ($j == 1 ) 
				              $mes="Enero";
						if ($j == 2 ) 
						      $mes="Febrero";
						if ($j == 3 ) 
						      $mes="Marzo";
						if ($j == 4 ) 
						      $mes="Abril";
						if ($j == 5 ) 
				              $mes="Mayo";
						if ($j == 6 ) 
						      $mes="Junio";
						if ($j == 7 ) 
						      $mes="Julio";
						if ($j == 8 ) 
						      $mes="Agosto";
						if ($j == 9 ) 
						      $mes="Septiembre";	
						if ($j == 10 ) 
						      $mes="Octubre";		
						if ($j == 11 ) 
						      $mes="Noviembre";	
						if ($j == 12 ) 
						      $mes="Diciembre";	
					
						$ejex[$i] = $mes ;
					
						$TareasSolucionados [$i]  = $CantTareasSolucionados;
						$TareasIngresados [$i]  = $CantTareasIngresados;				
						$i++;
						$TotalTicket = $TotalTicket + $CantTareasIngresados;
					
						fputs($ar, $mes . ";" . $CantTareasSolucionados . ";" .  $CantTareasIngresados );
						fputs($ar,"\n");
					}	
				}


				//anual
				if ($idSumarizar == 4) {
			    	list($dia1,$mes1,$año1)=explode("/",$fechaIni);	
					list($dia2,$mes2,$año2)=explode("/",$fechafin);
						
			    	for ($j = $año1; $j <= $año2; $j++) {
						$CantTareasSolucionados= tarea::getCantRowsxEstadoSumarizadoxAnio($idEmpresa, $fechaIni, $fechafin,3,$idClientes,$j);
						$CantTareasIngresados = tarea::getCantRowsxEstadoSumarizadoxAnio($idEmpresa, $fechaIni, $fechafin,0,$idClientes,$j);	
					
						$ejex[$i] = $j ;
					
						$TareasSolucionados [$i]  = $CantTareasSolucionados;
						$TareasIngresados [$i]  = $CantTareasIngresados;				
						$i++;
						$TotalTicket = $TotalTicket + $CantTareasIngresados;
					
						fputs($ar, $j . ";" . $CantTareasSolucionados . ";" .  $CantTareasIngresados );
						fputs($ar,"\n");
					}	
				}



			
				$data = $pdf->LoadData('Ticket.txt');
				
				$w = array(50,50, 50);
				$title = 'Informe de Tickets';
				$pdf->FancyTableTicket($header,$data,$w,$title);
				
				if ($idgrafico == 1) {
						$grafica = new Graph(500, 400,'auto');
						$grafica->img->SetMargin(50,40,20,0);
						
						$grafica->SetScale("textlin", 0, $TotalTicket);
						
						//Asigna el titulo al grafico
						$grafica->title->Set("Informe de Estado de Tickets");
						
						//Asigna el titulo al eje x
						$grafica->xaxis->SetTitle($texto);
						
						//Asigna el titulo y alineacion al eje y
						$grafica->yaxis->SetTitle("Cantidad Tickets","middle");
						
						//Asigna las etiquetas para los valores del eje x
						$grafica->xaxis->SetTickLabels($ejex);
						
						//crea una serie para el grafico de barras
						$Finalizada = new BarPlot($TareasSolucionados);
						
						//asigna la leyenda para la serie quimica
						$Finalizada->SetLegend("Finalizadas");
						
						//asigna el color de relleno de las barras con el nombre del color
						$Finalizada->SetFillColor("green");
						
						//crea una serie para el grafico de barras
						$total = new BarPlot($TareasIngresados);
						
						//asigna la leyenda para la serie quimica
						$total->SetLegend("Total");
						
						//asigna el color de relleno de las barras con el nombre del color
						$total->SetFillColor("yellow");				
						
						// agrupa las series del grafico
						$tickets = new GroupBarPlot(array($Finalizada,$total));
						
						//agrega al grafico el grupo de series
						$grafica->Add($tickets);
		
						// Guardar el archivo
						//$sArchivo = 'c:/wamp/www/setyd/ticket.png';
						$sArchivo = DIRRAIZ.'/ticket.png';
						
						
						if(file_exists($sArchivo)) {
							unlink($sArchivo);
						}
						
						$grafica->Stroke($sArchivo);
								
						//$ruta_relativa = 'c:/wamp/www/setyd/'; 	
						$ruta_relativa = DIRRAIZ.'/'; 	
										
					//	$pdf->Image('c:/wamp/www/setyd/ticket.png',50,100,100,100);
						$pdf->Image(DIRRAIZ.'/ticket.png',50,100,100,100);
				}
				$pdf->ln();
				$pdf->Output('tickets.pdf', 'D');
		}
		
		public static function CrearReporteTecnico($idTecnicos,$fechaIni,$fechafin){
				$pdf = new PDF();
			    
				$pdf->AliasNbPages();
				$pdf->SetFont('Times','',12);
				$header = array('Tecnico', 'Aceptadas', 'Rechazadas', 'Resueltos');
				$pdf->AddPage();
				

				
				$ar=fopen("datos.txt","w") or
				    die("Problemas en la creacion");
				
			    $ticketsA = array () ;
			    $ticketsR = array () ;
			    $ticketsC = array () ;
			    $i = 0;
				
				foreach($idTecnicos as $idTecnico)
			    {
					$CantTareasAceptadas= tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(2,6));
					//$CantTareasRechazadas = TareaRechazada::listarCantTareasRechazadasPorTecnico($idTecnico,$fechaIni,$fechafin);
					$CantTareasRechazadas = tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(5));
					$CantTareasFinalizadas = tarea::listarCantTareasPorTecnicoPorEstado($idTecnico,$fechaIni,$fechafin,array(3));

	         		fputs($ar,$idTecnico .";" . $CantTareasAceptadas . ";" . $CantTareasRechazadas . ";" . $CantTareasFinalizadas );
				 	fputs($ar,"\n");
				 	
					$ticketsA [$i] = $CantTareasAceptadas;
					$ticketsR [$i] = $CantTareasRechazadas ;
					$ticketsC [$i] = $CantTareasFinalizadas ;
					$i++;
					
				}

	
		
				$data = $pdf->LoadData('datos.txt');
				$w = array(20, 35, 30, 30);
				$title = 'Informe de Tickets por Tecnico';
				$pdf->FancyTable($header,$data,$w,$title);


				$grafica = new Graph(500, 400,'auto');
				$grafica->img->SetMargin(50,40,20,0);
				
				$grafica->SetScale("textlin", 0, 10);
				
				//Asigna el titulo al grafico
				$grafica->title->Set("Tickets Aceptados / Rechazados / Resueltos por tecnicos");
				
				//Asigna el titulo al eje x
				$grafica->xaxis->SetTitle("Tecnicos");
				
				//Asigna el titulo y alineacion al eje y
				$grafica->yaxis->SetTitle("Cantidad Tickets","middle");
				
				//Asigna las etiquetas para los valores del eje x
				$grafica->xaxis->SetTickLabels($idTecnicos);
				
				//crea una serie para un grafico de barras
				$aceptados = new BarPlot($ticketsA);
				
				//asigna la leyenda para la serie fisica
				$aceptados->SetLegend("Aceptados");
				
				//asigna el color de relleno de las barras en formato hexadecimal
				$aceptados->SetFillColor("green");
				
				//crea una serie para el grafico de barras
				$rechazados = new BarPlot($ticketsR);
				
				//asigna la leyenda para la serie matematicas
				$rechazados->SetLegend("Rechazados");
				
				//asigna el color de relleno de las barras con el nombre del color
				$rechazados->SetFillColor("red");
				
				//crea una serie para el grafico de barras
				$resueltos = new BarPlot($ticketsC);
				
				//asigna la leyenda para la serie quimica
				$resueltos->SetLegend("Resueltos");
				
				//asigna el color de relleno de las barras con el nombre del color
				$resueltos->SetFillColor("blue");
				
				// agrupa las series del grafico
				$tickets = new GroupBarPlot(array($aceptados,$rechazados,$resueltos));
				
				//agrega al grafico el grupo de series
				$grafica->Add($tickets);
				
				// Guardar el archivo
			//	$sArchivo = 'c:/wamp/www/setyd/tecnico.png';
				$sArchivo = DIRRAIZ.'/tecnico.png';
				
								
				if(file_exists($sArchivo)) {
					unlink($sArchivo);
				}
				
				$grafica->Stroke($sArchivo);
						
//				$ruta_relativa = 'c:/wamp/www/setyd/'; 		
				$ruta_relativa = DIRRAIZ.'/'; 				
						
//				$pdf->Image('c:/wamp/www/setyd/tecnico.png',50,100,100,80);
				$pdf->Image(DIRRAIZ.'/tecnico.png',50,100,100,80);
				$pdf->ln();
				$pdf->Output('tecnicos.pdf', 'D');

		}
	}
?>